#pragma once
#include"macro/xlink.hpp"

#define __xlist_core__(get0,get1,get2,get3,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32,a33,a34,a35,a36,a37,a38,a39,a40,a41,a42,a43,a44,a45,a46,a47,a48,a49,a50,a51,a52,a53,a54,a55,a56,a57,a58,a59,a60,a61,a62,a63,...)    \
get0 ## a0  get1 ## a1  get2 ## a2  get3 ## a3  get3 ## a4  get3 ## a5  get3 ## a6  get3 ## a7  get3 ## a8  get3 ## a9  get3 ## a10 get3 ## a11 get3 ## a12 get3 ## a13 get3 ## a14 get3 ## a15 get3 ## a16 get3 ## a17 get3 ## a18 get3 ## a19 get2 ## a20 get2 ## a21 get2 ## a22 get2 ## a23 get2 ## a24 get2 ## a25 get2 ## a26 get2 ## a27 get2 ## a28 get2 ## a29 get3 ## a30 get3 ## a31 get3 ## a32 get3 ## a33 get3 ## a34 get3 ## a35 get3 ## a36 get3 ## a37 get3 ## a38 get3 ## a39 get3 ## a40 get3 ## a41 get3 ## a42 get3 ## a43 get3 ## a44 get3 ## a45 get3 ## a46 get3 ## a47 get3 ## a48 get3 ## a49 get3 ## a50 get3 ## a51 get3 ## a52 get3 ## a53 get3 ## a54 get3 ## a55 get3 ## a56 get3 ## a57 get3 ## a58 get3 ## a59 get3 ## a60 get3 ## a61 get3 ## a62 get3 ## a63
#define __xlist4__(get0,get1,get2,get3,...)     xlink2(__xlist_, core__(get0,get1,get2,get3,__VA_ARGS__,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_))
#define __xlist3__(get0,get1,get2,...)          xlink2(__xlist_, core__(get0,get1,get2,get2,__VA_ARGS__,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_))
#define __xlist2__(get0,get1,...)               xlink2(__xlist_, core__(get0,get1,get1,get1,__VA_ARGS__,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_))
#define __xlist__(get0,...)                     xlink2(__xlist_, core__(get0,get0,get0,get0,__VA_ARGS__,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_))

#define __xlista_core__(get0,get1,get2,get3,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32,a33,a34,a35,a36,a37,a38,a39,a40,a41,a42,a43,a44,a45,a46,a47,a48,a49,a50,a51,a52,a53,a54,a55,a56,a57,a58,a59,a60,a61,a62,a63,...)    \
get0 ## a0  get1 ## a1  get2 ## a2  get3 ## a3  get3 ## a4  get3 ## a5  get3 ## a6  get3 ## a7  get3 ## a8  get3 ## a9  get3 ## a10 get3 ## a11 get3 ## a12 get3 ## a13 get3 ## a14 get3 ## a15 get3 ## a16 get3 ## a17 get3 ## a18 get3 ## a19 get2 ## a20 get2 ## a21 get2 ## a22 get2 ## a23 get2 ## a24 get2 ## a25 get2 ## a26 get2 ## a27 get2 ## a28 get2 ## a29 get3 ## a30 get3 ## a31 get3 ## a32 get3 ## a33 get3 ## a34 get3 ## a35 get3 ## a36 get3 ## a37 get3 ## a38 get3 ## a39 get3 ## a40 get3 ## a41 get3 ## a42 get3 ## a43 get3 ## a44 get3 ## a45 get3 ## a46 get3 ## a47 get3 ## a48 get3 ## a49 get3 ## a50 get3 ## a51 get3 ## a52 get3 ## a53 get3 ## a54 get3 ## a55 get3 ## a56 get3 ## a57 get3 ## a58 get3 ## a59 get3 ## a60 get3 ## a61 get3 ## a62 get3 ## a63
#define __xlista4__(get0,get1,get2,get3,...)    xlinka2(__xlista_, core__(get0,get1,get2,get3,__VA_ARGS__,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_))
#define __xlista3__(get0,get1,get2,...)         xlinka2(__xlista_, core__(get0,get1,get2,get2,__VA_ARGS__,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_))
#define __xlista2__(get0,get1,...)              xlinka2(__xlista_, core__(get0,get1,get1,get1,__VA_ARGS__,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_))
#define __xlista__(get0,...)                    xlinka2(__xlista_, core__(get0,get0,get0,get0,__VA_ARGS__,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_))

#define __xlistb_core__(get0,get1,get2,get3,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32,a33,a34,a35,a36,a37,a38,a39,a40,a41,a42,a43,a44,a45,a46,a47,a48,a49,a50,a51,a52,a53,a54,a55,a56,a57,a58,a59,a60,a61,a62,a63,...)    \
get0 ## a0  get1 ## a1  get2 ## a2  get3 ## a3  get3 ## a4  get3 ## a5  get3 ## a6  get3 ## a7  get3 ## a8  get3 ## a9  get3 ## a10 get3 ## a11 get3 ## a12 get3 ## a13 get3 ## a14 get3 ## a15 get3 ## a16 get3 ## a17 get3 ## a18 get3 ## a19 get2 ## a20 get2 ## a21 get2 ## a22 get2 ## a23 get2 ## a24 get2 ## a25 get2 ## a26 get2 ## a27 get2 ## a28 get2 ## a29 get3 ## a30 get3 ## a31 get3 ## a32 get3 ## a33 get3 ## a34 get3 ## a35 get3 ## a36 get3 ## a37 get3 ## a38 get3 ## a39 get3 ## a40 get3 ## a41 get3 ## a42 get3 ## a43 get3 ## a44 get3 ## a45 get3 ## a46 get3 ## a47 get3 ## a48 get3 ## a49 get3 ## a50 get3 ## a51 get3 ## a52 get3 ## a53 get3 ## a54 get3 ## a55 get3 ## a56 get3 ## a57 get3 ## a58 get3 ## a59 get3 ## a60 get3 ## a61 get3 ## a62 get3 ## a63
#define __xlistb4__(get0,get1,get2,get3,...)    xlinkb2(__xlistb_, core__(get0,get1,get2,get3,__VA_ARGS__,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_))
#define __xlistb3__(get0,get1,get2,...)         xlinkb2(__xlistb_, core__(get0,get1,get2,get2,__VA_ARGS__,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_))
#define __xlistb2__(get0,get1,...)              xlinkb2(__xlistb_, core__(get0,get1,get1,get1,__VA_ARGS__,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_))
#define __xlistb__(get0,...)                    xlinkb2(__xlistb_, core__(get0,get0,get0,get0,__VA_ARGS__,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_))

#define __xlistc_core__(get0,get1,get2,get3,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32,a33,a34,a35,a36,a37,a38,a39,a40,a41,a42,a43,a44,a45,a46,a47,a48,a49,a50,a51,a52,a53,a54,a55,a56,a57,a58,a59,a60,a61,a62,a63,...)    \
get0 ## a0  get1 ## a1  get2 ## a2  get3 ## a3  get3 ## a4  get3 ## a5  get3 ## a6  get3 ## a7  get3 ## a8  get3 ## a9  get3 ## a10 get3 ## a11 get3 ## a12 get3 ## a13 get3 ## a14 get3 ## a15 get3 ## a16 get3 ## a17 get3 ## a18 get3 ## a19 get2 ## a20 get2 ## a21 get2 ## a22 get2 ## a23 get2 ## a24 get2 ## a25 get2 ## a26 get2 ## a27 get2 ## a28 get2 ## a29 get3 ## a30 get3 ## a31 get3 ## a32 get3 ## a33 get3 ## a34 get3 ## a35 get3 ## a36 get3 ## a37 get3 ## a38 get3 ## a39 get3 ## a40 get3 ## a41 get3 ## a42 get3 ## a43 get3 ## a44 get3 ## a45 get3 ## a46 get3 ## a47 get3 ## a48 get3 ## a49 get3 ## a50 get3 ## a51 get3 ## a52 get3 ## a53 get3 ## a54 get3 ## a55 get3 ## a56 get3 ## a57 get3 ## a58 get3 ## a59 get3 ## a60 get3 ## a61 get3 ## a62 get3 ## a63
#define __xlistc4__(get0,get1,get2,get3,...)    xlinkc2(__xlistc_, core__(get0,get1,get2,get3,__VA_ARGS__,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_))
#define __xlistc3__(get0,get1,get2,...)         xlinkc2(__xlistc_, core__(get0,get1,get2,get2,__VA_ARGS__,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_))
#define __xlistc2__(get0,get1,...)              xlinkc2(__xlistc_, core__(get0,get1,get1,get1,__VA_ARGS__,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_))
#define __xlistc__(get0,...)                    xlinkc2(__xlistc_, core__(get0,get0,get0,get0,__VA_ARGS__,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_))
